class Person {
  final String name;
  final int age;
  const Person({required this.name, required this.age});
  void Say() {
    print("My name is ${this.name} and I am ${this.age} years old.");
  }
}

class Biology{
  String? kind;

  Biology([this.kind]);
}

class Person1 extends Biology{
  String? name;
  int? age;

  // 默认构造函数
  // Person1(this.name, this.age);

  // 默认构造函数，并在初始化列表中初始化成员变量
  Person1() : name = 'John', age = 25 {
    // 这里可以添加其他构造函数的逻辑
  }

  // 命名构造函数 + 初始化列表
  Person1.fromName(String name) : age = 0,super("person");

  // 命名构造函数 + 初始化列表
  Person1.fromAge(int age) : name = '', age = age {
    // 这里可以添加更多初始化逻辑
  }

  void showDetails() {
    print('Name: $name, Age: $age');
  }

}

void testConstructor() {
  // 使用默认构造函数创建对象
  // Person1 person1 = Person1('Alice', 25);
  Person1 person1 = Person1()..showDetails();
  // 使用命名构造函数 fromName 创建对象
  Person1 person2 = Person1.fromName('Bob')..showDetails();
  // 使用命名构造函数 fromAge 创建对象
  Person1 person3 = Person1.fromAge(30)..showDetails();
}

void add7( [num? a, num? b]) {//非法声明，想想也没有必要两者一起混合使用场景。所以

}




void main(List<String> args) {

  Person person1 = const Person(name: "lesscode", age: 20);
  Person person2 = const Person(name: "lesscode", age: 20);
  print(person1 == person2);
}
